096799 ランダム
 HOME | DIARY | PROFILE 【フォローする】 【ログイン】

The Quiet Sound of Water

The Quiet Sound of Water

マルチスレッド

マルチスレッド

各スレッドが衝突を起こさないように設計する必要がある。
そのためにスレッドの一覧と各スレッドが行う処理を明確にしマトリクスを作って衝突の可能性のある箇所を洗い出す。

スレッド一覧:
識別子スレッド名概要
MSメインスレッド親スレッド。全スレッドの親となり、コマンドキューを読んで処理を行う
AS接続受付スレッド新規接続を受け付ける
RS受信スレッドクライアントからの通信を受信する。受信したデータはコマンドキューにためる。(実際のソケット受信はさらに子スレッドが行う)
SS送信スレッドサーバーから各クライアントへの送信を行う。送信内容はレスポンスキューから読みこむ
WSワールドスレッド一定時間ごとにオブジェクト、イベントの動作を行う
NSNPCスレッド一定時間ごとにNPCの動作を行う

処理一覧:
処理MSASRSSSWSNSメモ
データの読み込み(ファイルから) -----親のみ
データの変更(ステータスなど) ---注意
通信データの受信 ----実際は子スレが受信するので問題なし
通信データの送信 -----OK
ソケットの生成 -----OK?
ソケットの破棄 -----OK?
コマンドキュー書き込み -まだ見えない
コマンドキュー読み込み -----OK
コマンドの解析(と処理呼び出し) -----親のみ
レスポンスキュー書き込み ----チャットはRSが直書き?
レスポンスキュー読み込み -----OK
言語フィルタ適用 ----どっちでやるのが良いのだ?
オブジェクトの変化 ----注意
イベントの変化 ----注意
NPCの動作 ----注意



© Rakuten Group, Inc.